<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
	<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
	<meta name="keywords" content="天地图"/>
	<title>天地图－地图API－范例－地图点击事件</title>
	<script type="text/javascript" src="http://api.tianditu.gov.cn/api?v=4.0&tk=502e05b68ea427c201f63ec608d7f0d7"></script>
	<style type="text/css">body,html{width:100%;height:100%;margin:0;font-family:"Microsoft YaHei"}#mapDiv{width:100%;height:100%}input,b,p{margin-left:5px;font-size:14px}</style>
	<script>
                var map;
                var points;
                var zoom = 17;
                var polygon, polygonclick;
                var marker;
                var newControl;
                function onLoad()
                {
                    map = new  T.Map('mapDiv',{datasourcesControl: true});
                    //创建对象
                    var ctrl = new T.Control.MapType();
                    //添加控件
                    map.addControl(ctrl);
                    //116.2788,40.14234
                    //map.centerAndZoom(new T.LngLat(116.38573,39.90684), zoom);
                    //addMarker(116.2788,40.14234);
                    /*
                     newControl = new T.Control({position: T_ANCHOR_BOTTOM_RIGHT});
                     newControl.onAdd = function (map) {
                     var container = document.createElement("div");
                     var zicsstext = "font-size:14px;border:solid 2px white;background:#fff;padding:4px;line-height:15px;cursor:pointer;color:black";
                     <!--var zocsstext = "font-size:14px;border:solid 2px white;background:#fff;padding:4px;line-height:15px;cursor:pointer;color:black";-->
                     this.normalButton = createButton("定位", "定位", 'a', container, zicsstext);
                     <!--this.satelliteButton = createButton("卫星地图", "卫星地图", 'b', container, zocsstext);-->
                     <!--this.hybridButton = createButton("卫星混合", "卫星混合", 'c', container, zocsstext);-->
                     this.normalButton.onclick = normal;
                     <!--this.satelliteButton.onclick = satellite;-->
                     <!--this.hybridButton.onclick = hybrid;-->
                     return container;
                     };
                     newControl.onRemove = function (map) {
                     //移除控件时要释放
                     delete  this.zoomInButton;
                     delete  this.zoomOutButton;
                     }
                     */
                    map.addControl(newControl);
                    // addMapClick();
                }
            function normal() {
                // centerAndZoom('','');
                //点击了位置复位，调用iOS或Android方法，把集合位置传递
                //window.androidObject.androidMarkerClick(e.lnglat.getLng()+"",e.lnglat.getLat()+"");
                var u = navigator.userAgent;
                var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
                var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端

                if (isAndroid){
                    // window.androidObject.androidMarkerClick(e.lnglat.getLng()+"",e.lnglat.getLat()+"");
                }else if (isiOS){
                    window.webkit.messageHandlers.AppModel.postMessage({'operation':'clickReset'});
                }
            }
            function createButton(html, title, className, container, csstext) {
                var link = document.createElement("img");
                if (container) {
                    container.appendChild(link);
                }
                link.src="./MapPoint@2x.png";
                link.className="image";
                link.weight = 40;
                link.height = 40 ;
                return link;

            }
            function getLocation(clickLng,clickLat){
                //定位，获取位置
                var lo = new T.Geolocation();
                fn = function (e) {
                    if (this.getStatus() == 0){
                        //map.centerAndZoom(e.lnglat, 15)
                        //alert("获取定位坐标："+e.lnglat.lat + "," + e.lnglat.lng)

                        //var marker = new T.Marker(e.lnglat);
                        //map.addOverLay(marker);
                        //window.androidObject.androidMapClick(e.lnglat.getLng(),e.lnglat.getLat());

                        var u = navigator.userAgent;
                        var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
                        var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端

                        if (isAndroid)
                        {
                            window.androidObject.androidMapClick(clickLng,clickLat,e.lnglat.lng,e.lnglat.lat);
                        }
                        else if (isiOS)
                        {
                            window.webkit.messageHandlers.AppModel.postMessage({body: 'call js alert in js'});
                        }
                    }
                    /*
                     if(this.getStatus() == 1){
                     map.centerAndZoom(e.lnglat, e.level)
                     //alert("获取定位坐标："+e.lnglat.lat + "," + e.lnglat.lng)
                     var marker = new T.Marker(e.lnglat);
                     map.addOverLay(marker);
                     }
                     */
                }
                lo.getCurrentPosition(fn);
            }


            function addMarkerClick(marker) {
                //移除标注的点击事件，防止多次注册
                removeMarkerClick(marker);
                //注册标注的点击事件
                marker.addEventListener("click", MarkerClick);
            }

            function removeMarkerClick(marker) {
                //移除标注的点击事件
                marker.removeEventListener("click", MarkerClick);
            }

            function MarkerClick(e) {
                //alert(e.lnglat.getLng() + "," + e.lnglat.getLat());
                //点击了某个标注，调用iOS或Android方法，把集合位置传递
                //window.androidObject.androidMarkerClick(e.lnglat.getLng()+"",e.lnglat.getLat()+"");
                var u = navigator.userAgent;
                var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
                var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端

                if (isAndroid)
                {
                    window.androidObject.androidMarkerClick(e.lnglat.getLng()+"",e.lnglat.getLat()+"");
                }
                else if (isiOS)
                {

                    window.webkit.messageHandlers.AppModel.postMessage({'operation':'clickPic','JingDu':e.lnglat.getLng()+"",'WeiDu':e.lnglat.getLat()+""});
                }
            }

            function addMapClick()
            {
                removeMapClick();
                map.addEventListener("click",MapClick);
            }

            function removeMapClick()
            {
                map.removeEventListener("click",MapClick);
            }

            function MapClick(e)
            {
                alert(e.lnglat.getLng()+","+e.lnglat.getLat());
                //addIconMarker(e.lnglat.getLng(),e.lnglat.getLat(),"http://api.tianditu.gov.cn/img/map/markerA.png");
                //addIconMarker(e.lnglat.getLng(),e.lnglat.getLat(),"images/markerA.png");
                var u = navigator.userAgent;
                var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
                var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端

                if (isAndroid)
                {
                    window.androidObject.androidMapClick(e.lnglat.getLng(),e.lnglat.getLat());
                }
                else if (isiOS)
                {

                    window.webkit.messageHandlers.AppModel.postMessage({'operation':'clickPoint','JingDu':e.lnglat.getLng()+"",'WeiDu':e.lnglat.getLat()+""});
                }

            }

            function addMarker(lng,lat){
                //alert("js方法调用");
                //创建标注对象
                //map.centerAndZoom(new T.LngLat(lng, lat), zoom)
                var marker = new T.Marker(new T.LngLat(lng, lat));
                //向地图上添加标注
                map.addOverLay(marker);
            }
            function androidTest(){
                //alert("js方法调用");
            }

            function addIconMarker(lng,lat,url){
                //  alert("js addIconMarker方法调用");
                //创建图片对象
                var icon = new T.Icon({
                    iconUrl: url,
                    iconSize: new T.Point(15, 16),
                    iconAnchor: new T.Point(7, 16)
                });
                //向地图上添加自定义标注
                var marker = new T.Marker(new T.LngLat(lng, lat), {icon: icon});
                map.addOverLay(marker);

                addMarkerClick(marker);//给标注添加点击事件
            }

            function onRange(params){
                //alert(params)
                var points = [];
                var lnglatarr = params.split(';');
                //alert(lnglatarr);
                for(var i=0, len = lnglatarr.length; i < len; i++){

                    var lnglat = lnglatarr[i].split(',');
                    var lng = lnglat[0];
                    //alert(lng);
                    var lat = lnglat[1];
                    //alert(lng + ','+lat)
                    if(i == (len-1)){
                        //alert('centerZoom'+'lng='+lng+' lat='+lat);
                        //map.centerAndZoom(new T.LngLat(lng+'', lat+''), zoom);
                    }

                    points.push(new T.LngLat(lng, lat));


                }
                //创建面对象
                polygon = new T.Polygon(points,{
                    color: "blue", weight: 3, opacity: 0.5, fillColor: "#FFFFFF", fillOpacity: 0.0
                });
                //向地图上添加面
                map.addOverLay(polygon);
                addPolygonClick();

            }

            function centerAndZoom(lng,lat){
                map.centerAndZoom(new T.LngLat(lng, lat), zoom);
                //map.centerAndZoom(new T.LngLat(116.40575,39.87005), zoom);
            }

            function addPolygonClick() {
                //移除面的点击事件，防止多次注册
                removePolygonClick();
                //注册面的点击事件
                polygon.addEventListener("click", PolygonClick);
            }

            function removePolygonClick() {
                //移除面的点击事件
                polygon.removeEventListener("click", PolygonClick);
            }

            function PolygonClick(e) {
                //alert(e.lnglat.getLng()+","+e.lnglat.getLat());
                //getLocation(e.lnglat.getLng(),e.lnglat.getLat());
                var u = navigator.userAgent;
                var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
                var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
                if (isAndroid)
                {
                    window.androidObject.androidMapClick(e.lnglat.lng+"",e.lnglat.lat+"");
                }
                else if (isiOS)
                {
                    window.webkit.messageHandlers.AppModel.postMessage({'operation':'clickPoint','JingDu':e.lnglat.getLng()+"",'WeiDu':e.lnglat.getLat()+""});
                }

            }
            function setPhoneLocation(locationStr){
                //进行定位显示
                // var lo = new T.Geolocation();
                if(marker)
                {
                    map.removeOverLay(marker);
                }

                //  marker = new T.Marker(e.lnglat);
                var lnglat = locationStr.split(',');
                var lng = lnglat[0];
                //alert(lng);
                var lat = lnglat[1];
                marker = new T.Marker(new T.LngLat(lng, lat));
                map.addOverLay(marker);
            }

                </script>
</head>
<body onLoad="onLoad()">
<div id="mapDiv" ></div>
</body>
</html>
